//: [Previous](@previous)

import Foundation

/*:
 ### 7. Reverse Integer
 Given a 32-bit signed integer, reverse digits of an integer.
 ```
 Example 1:
 Input: 123
 Output: 321
 
 Example 2:
 Input: -123
 Output: -321
 
 Example 3:
 Input: 120
 Output: 21
 ```
 > Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231,  231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
 */

pow(2, 31)
// 1534236469
// 2147483648

func reverse(_ x: Int) -> Int {
    var x = x
//    let isDe = x > 0
    var result = 0
    if (x > Int32.max || (x < Int32.min)) {
        print(">>>>>\(x)")
        return result
    }
    
    while x > 0 {
        result = result * 10 + x % 10
        x = x / 10
    }
    
    return result
}

reverse(123)
reverse(-123)
reverse(120)
reverse(1534236469)
reverse(90001)
reverse(900000)

//: [Next](@next)
